diff options
| author | Adam Soltys <[email protected]> | 2023-01-03 00:22:30 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2023-01-05 07:41:32 -0800 |
| commit | a657fab89a7de41f0a33389023166a6f7af6dbe6 (patch) | |
| tree | 77a485e5539be24542b38de582338946d317a4ce /src/routes/(app)/[username] | |
| parent | 9849f6c4431214665c47c43098d86112c93d8001 (diff) | |
| download | coinos-ui-a657fab89a7de41f0a33389023166a6f7af6dbe6.tar.gz coinos-ui-a657fab89a7de41f0a33389023166a6f7af6dbe6.zip | |
generate pubkey on register
Diffstat (limited to 'src/routes/(app)/[username]')
| -rw-r--r-- | src/routes/(app)/[username]/generate/+page.svelte | 42 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/generate/+server.js | 5 |
2 files changed, 40 insertions, 7 deletions
diff --git a/src/routes/(app)/[username]/generate/+page.svelte b/src/routes/(app)/[username]/generate/+page.svelte index f2e53be7..91c3d189 100644 --- a/src/routes/(app)/[username]/generate/+page.svelte +++ b/src/routes/(app)/[username]/generate/+page.svelte @@ -1,14 +1,14 @@ <script> - import { failure } from '$lib/utils'; + import { failure, post, wait } from '$lib/utils'; import { Buffer } from 'buffer'; import { onMount } from 'svelte'; import { bech32m } from 'bech32'; import { generateMnemonic, mnemonicToEntropy, mnemonicToSeedSync } from 'bip39'; import { goto, invalidate } from '$app/navigation'; - import { loginRedirect, password } from '$lib/store'; import { Pin } from '$comp'; - import { pin } from '$lib/store'; + import { loginRedirect, pin, password, passwordPrompt } from '$lib/store'; import { generate } from '$lib/nostr'; + import { browser } from '$app/environment'; export let data; let { user } = data; @@ -16,8 +16,42 @@ let loaded; onMount(async () => { + if (!browser) return; setTimeout(() => (loaded = true), 50); - generate(user); + + if (!$password) $passwordPrompt = true; + + try { + await post('/password', { password: $password }); + } catch (e) { + $passwordPrompt = true; + } + + await wait(() => $password); + + try { + await generate(user); + } catch (e) { + console.log('error generating', e); + } + + try { + user.pin = $pin; + } catch (e) { + if (e.message?.startsWith('Pin')) { + $pin = ''; + failure('Wrong pin, try again'); + } + } + + try { + await post(`/${user.username}/generate`, user); + goto($loginRedirect || `/${user.username}/dashboard`, { invalidateAll: true }); + } catch (e) { + console.log(e); + failure('Failed to generate keys'); + goto('/'); + } }); $: $pin?.length === 6 && generate(user); diff --git a/src/routes/(app)/[username]/generate/+server.js b/src/routes/(app)/[username]/generate/+server.js index 608f0575..4cc248bd 100644 --- a/src/routes/(app)/[username]/generate/+server.js +++ b/src/routes/(app)/[username]/generate/+server.js @@ -3,10 +3,9 @@ import { error, json } from '@sveltejs/kit'; export async function POST({ cookies, request }) { try { - let body = await request.json(); - let user = await post(`/user`, body, auth(cookies)); - return json(user); + return json(await post(`/user`, await request.json(), auth(cookies))); } catch (e) { + console.log(e); throw error(500, e.message); } } |
